<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Common Address Redundancy Protocol</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Common_Address_Redundancy_Protocol"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Common_Address_Redundancy_Protocol rootpage-Common_Address_Redundancy_Protocol skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Common Address Redundancy Protocol</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><table class="wikitable float-right" style="margin-top:0;">
<tbody><tr>
<th colspan="2" style="background:#C0C0FF; font-size:larger;">CARP (Common Address Redundancy Protocol)
</th></tr>
<tr>
<td><b>Familie:</b>
</td>
<td><a href="Internetprotokollfamilie" title="Internetprotokollfamilie">Internetprotokollfamilie</a>
</td></tr>
<tr>
<td><b>Einsatzgebiet:</b>
</td>
<td>
<p>Steigerung der Verfügbarkeit<br>
von <a href="Gateway_(Informatik)" title="Gateway (Informatik)">Gateways</a>
</p>
</td></tr>
<tr>
<td colspan="2">
<table class="center" style="border-spacing:3px; text-align:center; line-height:1.2em;">
<caption>CARP im <a href="Internetprotokollfamilie#TCP/IP-Referenzmodell" title="Internetprotokollfamilie">TCP/IP-Protokollstapel</a>:
</caption>
<tbody><tr>
<th class="hintergrundfarbe4">Anwendung
</th>
<th colspan="5" class="notheme hintergrundfarbe6">CARP
</th></tr>
<tr>
<td class="hintergrundfarbe8">Transport
</td>
<td colspan="5" class="notheme" style="background:#EEEEFF; color:#202122;"><a href="User_Datagram_Protocol" title="User Datagram Protocol">UDP</a>
</td></tr>
<tr>
<td class="hintergrundfarbe8">Internet
</td>
<td colspan="5" class="notheme" style="background:#EEEEFF; color:#202122;"><a href="Internet_Protocol" title="Internet Protocol">IP</a> (<a href="IPv4" title="IPv4">IPv4</a>, <a href="IPv6" title="IPv6">IPv6</a>)
</td></tr>
<tr class="hintergrundfarbe5">
<td class="hintergrundfarbe8">Netzzugang
</td>
<td><a href="Ethernet" title="Ethernet">Ethernet</a>
</td>
<td><a href="Token_Bus" title="Token Bus">Token<br>Bus</a>
</td>
<td><a href="Token_Ring" title="Token Ring">Token<br>Ring</a>
</td>
<td><a href="Fiber_Distributed_Data_Interface" title="Fiber Distributed Data Interface">FDDI</a>
</td>
<td>…
</td></tr></tbody></table>
</td></tr>
<tr>
<td><b>Standards:</b>
</td>
<td>
</td></tr></tbody></table>
<p>Das <b>Common Address Redundancy Protocol</b> (<b>CARP</b>) ist ein <a href="Netzwerkprotokoll" title="Netzwerkprotokoll">Netzwerkprotokoll</a>, mit dessen Hilfe sich die <a href="Verf%C3%BCgbarkeit" title="Verfügbarkeit">Verfügbarkeit</a> von <a href="Internet_Protocol" title="Internet Protocol">IP</a>-Systemen erhöhen lässt. Dies wird dadurch erreicht, dass mehrere Rechner innerhalb eines lokalen Netzes dieselben virtuellen <a href="IP-Adresse" title="IP-Adresse">IP</a>-/<a href="MAC-Adresse" title="MAC-Adresse">MAC-Adressen</a> für die Kommunikation mit anderen Systemen nutzen können. Haupteinsatzgebiet von CARP ist die Erstellung <a href="Hochverf%C3%BCgbarkeit" title="Hochverfügbarkeit">hochverfügbarer</a> <a href="Gateway_(Informatik)" title="Gateway (Informatik)">Gateways</a> (<a href="Router" title="Router">Router</a>/<a href="Firewall" title="Firewall">Firewall</a>); mit CARP lassen sich aber auch <a href="Anwendungsserver" title="Anwendungsserver">Applikationsserver</a> hochverfügbar machen. In der <a href="Internetprotokollfamilie" title="Internetprotokollfamilie">Internetprotokollfamilie</a> ist es das Protokoll Nummer 112.
Entwickelt wurde CARP vom <a href="OpenBSD" title="OpenBSD">OpenBSD</a>-Team. Die Entwicklung war nötig, weil es (aus patentrechtlichen Gründen) nicht möglich ist, im Rahmen eines <a href="Open_Source" title="Open Source">Open-Source</a>-Projektes <a href="Virtual_Router_Redundancy_Protocol" title="Virtual Router Redundancy Protocol">VRRP</a> einzusetzen. Dadurch war es nötig, ein eigenes Protokoll zu schreiben. Zusätzlich konnten auf diese Weise grundlegende Fehler des VRRP und <a href="Hot_Standby_Router_Protocol" title="Hot Standby Router Protocol">HSRP</a> vermieden werden. Die erste OpenBSD-Version, bei der CARP integriert war, war Version 3.5.
</p><p>Inzwischen ist CARP auch auf andere Plattformen portiert worden. Eine freie <a href="Ring_(CPU)" class="mw-redirect" title="Ring (CPU)">Userland</a>-Portierung ist UCARP (zurzeit erhältlich für <a href="Linux" title="Linux">Linux</a> 2.4/2.6, OpenBSD und <a href="NetBSD" title="NetBSD">NetBSD</a>). Für <a href="DragonFly_BSD" title="DragonFly BSD">DragonFly BSD</a>, <a href="FreeBSD" title="FreeBSD">FreeBSD</a><sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> und NetBSD existieren <a href="Kernel_(Betriebssystem)" title="Kernel (Betriebssystem)">Kernel</a>-Implementierungen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Abgrenzung_zu_VRRP">Abgrenzung zu VRRP</h2></div>
<p>Die grundsätzliche Aufgabe und Funktionsweise von CARP ähnelt VRRP. Es gibt aber einige grundlegende Unterschiede:
</p>
<ul><li>Der wichtigste Vorteil von CARP ist, dass es, im Gegensatz zu VRRP, <a href="Patent" title="Patent">patentfrei</a> von jedermann genutzt werden kann.</li>
<li>Ein grundsätzlicher Unterschied zu VRRP ist die protokollunabhänge Arbeitsweise von CARP. Damit ist CARP für <a href="IPv4" title="IPv4">IPv4</a> und <a href="IPv6" title="IPv6">IPv6</a> nutzbar.</li>
<li>Des Weiteren wurde bei der Entwicklung von CARP sehr viel Wert auf Sicherheit gelegt, so sind beispielsweise die zwischen den <a href="Rechnerverbund" title="Rechnerverbund">Cluster</a>-Rechnern ausgetauschten Nachrichten prinzipiell <a href="Kryptographie" title="Kryptographie">kryptographisch</a> mit <a href="Secure_Hash_Algorithm" title="Secure Hash Algorithm">SHA-1</a> bzw. <a href="Keyed-Hash_Message_Authentication_Code" class="mw-redirect" title="Keyed-Hash Message Authentication Code">HMAC</a> signiert.</li>
<li>CARP nutzt ein Feature namens <i>arpbalance</i>. Dabei nutzen alle Rechner dieselbe virtuelle IP-Adresse, aber jeder Rechner bekommt noch eine eigene virtuelle MAC-Adresse. Dadurch ist <a href="Lastverteilung_(Informatik)" title="Lastverteilung (Informatik)">Lastverteilung</a> zwischen den Rechnern möglich. Dieses Merkmal funktioniert bisher nur unter <a href="OpenBSD" title="OpenBSD">OpenBSD</a> sowie auf <a href="FreeBSD" title="FreeBSD">FreeBSD</a> bis Version 9.3<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>, userland CARP (UCARP) implementiert diese Funktion für andere Plattformen, z. B. <a href="Linux" title="Linux">Linux</a> bisher nicht.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Funktionsweise">Funktionsweise</h2></div>
<p>Um CARP zu nutzen, braucht man mindestens zwei Systeme, die die gleiche Aufgabe erfüllen und im selben <a href="Subnetz" title="Subnetz">Subnetz</a> liegen. Diese Systeme haben jeweils eine eindeutige IP- und MAC-Adresse und bilden einen Cluster. Zusätzlich wird diesem Cluster jetzt eine virtuelle IP- und MAC-Adresse zugewiesen. Über diese virtuelle IP/MAC kommuniziert der Cluster mit anderen Systemen. Damit das funktioniert, wird ein Cluster-Rechner Master und die anderen Slaves, wobei der Master die Kommunikation mit der Außenwelt übernimmt. Über das CARP-Protokoll stellt jedes Cluster-Mitglied sicher, dass die anderen Maschinen noch arbeiten. Wenn der Master ausfällt, übernimmt einer der Slaves sowohl die virtuelle MAC-Adresse als auch die virtuelle IP-Adresse.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p><p>Besonders interessant ist CARP im Zusammenhang mit hoch verfügbaren Firewalls. Dabei ist es zusätzlich nötig, die Zustandstabellen zu synchronisieren, um Verluste von Verbindungen bei Ausfall des aktiven Cluster-Rechners zu verhindern. Bei der Kombination <a href="OpenBSD" title="OpenBSD">OpenBSD</a>/<a href="Pf_(Paketfilter)" title="Pf (Paketfilter)">pf</a> wird hierfür pfsync eingesetzt, unter <a href="Linux" title="Linux">Linux</a>/<a href="Netfilter" title="Netfilter">Netfilter</a> ist diese Funktion mit conntrackd umsetzbar.
</p>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.openbsd.org/cgi-bin/man.cgi?query=carp&sec=4">Man page-Eintrag Beschreibung der Original OpenBSD-Implementation</a></li>
<li><a rel="nofollow" class="external free" href="https://ucarp.wordpress.com/">https://ucarp.wordpress.com/</a></li>
<li><a rel="nofollow" class="external text" href="http://www.kernel-panic.it/openbsd/carp/carp4.html">Firewall Failover with pfsync and CARP</a> (<a href="OpenBSD" title="OpenBSD">OpenBSD</a>)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.freebsd.org/cgi/man.cgi?query=carp&apropos=0&sektion=4&manpath=FreeBSD+11.2-RELEASE&arch=default&format=html"><i>carp(4).</i></a><span class="Abrufdatum"> Abgerufen am 8. Oktober 2018</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3ACommon+Address+Redundancy+Protocol&rft.title=carp%284%29&rft.description=carp%284%29&rft.identifier=https%3A%2F%2Fwww.freebsd.org%2Fcgi%2Fman.cgi%3Fquery%3Dcarp%26apropos%3D0%26sektion%3D4%26manpath%3DFreeBSD%2B11.2-RELEASE%26arch%3Ddefault%26format%3Dhtml"> </span></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.freebsd.org/releases/10.0R/relnotes.html"><i>FreeBSD 10.0-RELEASE Release Notes.</i></a><span class="Abrufdatum"> Abgerufen am 8. Oktober 2018</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3ACommon+Address+Redundancy+Protocol&rft.title=FreeBSD+10.0-RELEASE+Release+Notes&rft.description=FreeBSD+10.0-RELEASE+Release+Notes&rft.identifier=https%3A%2F%2Fwww.freebsd.org%2Freleases%2F10.0R%2Frelnotes.html"> </span></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><span class="cite">heise online: <a rel="nofollow" class="external text" href="https://www.heise.de/newsticker/meldung/OPNsense-Firewall-20-1-mit-VXLAN-IPsec-public-key-und-kompletter-Doku-4654216.html"><i>OPNsense-Firewall 20.1 mit VXLAN, IPsec Public Key und kompletter Doku.</i></a><span class="Abrufdatum"> Abgerufen am 26. November 2021</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3ACommon+Address+Redundancy+Protocol&rft.title=OPNsense-Firewall+20.1+mit+VXLAN%2C+IPsec+Public+Key+und+kompletter+Doku&rft.description=OPNsense-Firewall+20.1+mit+VXLAN%2C+IPsec+Public+Key+und+kompletter+Doku&rft.identifier=https%3A%2F%2Fwww.heise.de%2Fnewsticker%2Fmeldung%2FOPNsense-Firewall-20-1-mit-VXLAN-IPsec-public-key-und-kompletter-Doku-4654216.html&rft.creator=heise+online&rft.language=de"> </span></span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-02-03" href="https://de.wikipedia.org/wiki/?title=Common_Address_Redundancy_Protocol&oldid=252940669">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>